#include <libopencm3/stm32/gpio.h>
#include <libopencm3/cm3/systick.h>
#include "led_control.h"

// // 定义 LED 引脚
// // 这里假设 A5, A6, A7 对应 GPIOA 的 5, 6, 7 引脚
// const uint8_t led_pins[] = {GPIO5, GPIO6, GPIO7};
// const int num_leds = sizeof(led_pins) / sizeof(led_pins[0]);
//
// // 延时计数变量
// volatile uint32_t systick_counter = 0;
// // LED 状态标志，0 表示熄灭，1 表示点亮
// volatile uint8_t led_state = 0;
// // 定时周期，单位为 ms
// const uint32_t period_ms = 1000;
//
// // SysTick 中断处理函数
// void sys_tick_handler(void) {
//     systick_counter++;
//     if (systick_counter >= period_ms) {
//         systick_counter = 0;
//         led_state = !led_state; // 切换 LED 状态
//     }
// }
//
// void gpio_setup(void) {
//     // 使能 GPIOA 时钟
//     rcc_periph_clock_enable(RCC_GPIOA);
//
//     // 将所有 LED 引脚设置为输出模式
//     for (int i = 0; i < num_leds; i++) {
//         gpio_set_mode(GPIOA, GPIO_MODE_OUTPUT_2_MHZ, GPIO_CNF_OUTPUT_PUSHPULL, led_pins[i]);
//     }
// }
//
// void systick_setup(void) {
//     // 设置 SysTick 时钟源为处理器时钟
//     STK_CSR |= STK_CSR_CLKSOURCE_AHB;
//     // 设置 SysTick 中断周期为 1ms
//     systick_set_reload(rcc_ahb_frequency / 1000 - 1);
//     // 使能 SysTick 定时器和中断
//     STK_CSR |= (STK_CSR_TICKINT | STK_CSR_ENABLE);
//     systick_counter = 0;
// }
//
// void update_led_state(void) {
//     if (led_state) {
//         // 点亮所有 LED
//         for (int i = 0; i < num_leds; i++) {
//             gpio_set(GPIOA, led_pins[i]);
//         }
//     } else {
//         // 熄灭所有 LED
//         for (int i = 0; i < num_leds; i++) {
//             gpio_clear(GPIOA, led_pins[i]);
//         }
//     }
// }